#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
    int ret = fork();
    if (ret < 0)
    { //创建失败
        perror("fork");
        return 1;
    }
    else if (ret == 0)
    //创建成功： 子进程返回父进程子进程PID，子进程返回0； 
    { // child
        printf("I am child : %d!, ret: %d\n", getpid(), ret);
    }
    else
    { // father
        printf("I am father : %d!, ret: %d\n", getpid(), ret);
    }
    sleep(10);
    return 0;
}

// int main()
// {
//     int ret = fork();
//     printf("hello proc : %d!, ret: %d\n", getpid(), ret);
//     sleep(1);
//     return 0;
// }

// int main()
// {
//     printf("pid: %d\n", getpid());
//     printf("ppid: %d\n", getppid());
//     return 0;
// }

// int main()
// {
//     while(1){
//         sleep(1);
//     }
//     return 0;
// }
